﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using BLL;
using DTO;
using System.Reflection;

public partial class detalhar : Pagina
{
    private int id;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["id"] != null)
        {
            if (Int32.TryParse(Request.QueryString["id"], out id))
            {
                PopulaControles();
            }
        }
        else
            Response.Redirect("pesquisar.aspx");
    }

    private void PopulaControles()
    {
        try
        {
            Equipamento eq = new Equipamento();
            eq = Busca.Selecionar(id);

            imgThumbnail.ImageUrl = CaminhoImagemThumbnail(id);
            if (!ExisteImagem(id))
            {
                imgThumbnail.ToolTip = "Imagem Indisponivel";
                imagem.HRef = string.Empty;
                imagem.Attributes["rel"] = string.Empty;
                imgThumbnail.AlternateText = "Imagem Indisponivel";
                lblLegendaImg.Text = "Imagem Indisponivel";
            }
            else
            {
                imagem.HRef = CaminhoImagem(id);
                imgThumbnail.AlternateText = eq.Nome;
                imgThumbnail.ToolTip = eq.Nome;

            }
            if (eq != null)
            {
                lblBairro.Text = string.IsNullOrEmpty(eq.Bairro) ? "Não informado" : eq.Bairro;
                lblDescrição.Text = string.IsNullOrEmpty(eq.Descrição) ? string.Empty : eq.Descrição;
                lblEmail.Text = string.IsNullOrEmpty(eq.Email) ? "Não informado" : eq.Email;
                lblFax.Text = string.IsNullOrEmpty(eq.Fax) ? "Não informado" : eq.Fax;
                lblNome.Text = string.IsNullOrEmpty(eq.Nome) ? "Não informado" : eq.Nome;
                lblNumero.Text = string.IsNullOrEmpty(eq.Numero) ? "Não informado" : eq.Numero;
                lblRua.Text = string.IsNullOrEmpty(eq.Rua) ? "Não informado" : eq.Rua;
                lblTel.Text = string.IsNullOrEmpty(eq.Bairro) ? "Não informado" : eq.Telefone.Replace(',', '\n');
                
                if(string.IsNullOrEmpty(eq.Equipamentos))
                    divEquipamentos.Visible = false;
                else
                    lblEquipamentos.Text = eq.Equipamentos;

                if (string.IsNullOrEmpty(eq.Serviços))
                    divServiços.Visible = false;
                else
                    lblServiços.Text = eq.Serviços;

                if (string.IsNullOrEmpty(eq.FormasPagamento))
                    div3.Visible = false;
                else
                    Label3.Text = eq.FormasPagamento;

                if (string.IsNullOrEmpty(eq.Companhia))
                    div4.Visible = false;
                else
                    Label4.Text = eq.Companhia;

                if (string.IsNullOrEmpty(eq.Rotas))
                    div5.Visible = false;
                else
                    Label5.Text = eq.Rotas;

                TratarCampos(div7, Label7, eq.Tarifas);
                TratarCampos(div6, Label6, eq.Couvert);
                TratarCampos(div8, Label8, eq.HorarioFuncionamento);
                TratarCampos(div9, Label9, eq.Cenário);
                TratarCampos(div10, Label10, eq.Reservas);
                TratarCampos(div11, Label11, eq.NoLocal);
                TratarCampos(div12, Label12, eq.NoHotel);
                TratarCampos(divCapacidade, lblCapacidade, eq.Capacidade);
                TratarCampos(divEspecialidade, lblEspecialidade, eq.Especialidade);
                TratarCampos(divUnidadesHabitacionais, lblUnidadesHabitacionais, eq.UnidadesHabitacionais);
                
                address.Text = eq.Rua + ", " + eq.Numero + ", " + eq.Bairro + ", Belém, PA";
                string addressStr = address.Text;
            }
        }
        catch (Exception ex)
        {
            Log.Write(ex, "Detalhar.aspx -> " + MethodInfo.GetCurrentMethod().Name);
            throw ex;
        }
    }


    public void TratarCampos(HtmlControl div, Label label, string field)
    {
        if (string.IsNullOrEmpty(field))
            div.Visible = false;
        else
            label.Text = field;
    }
}
